package com.park.dao.article;

import java.util.List;
import java.util.Map;

import com.park.client.model.SearchText;
import com.park.client.model.article.ArticleModel;
import com.park.client.vo.ArticleVo;
import com.park.dao.base.BaseMapper;

public interface ArticleMapper extends BaseMapper<ArticleModel>{

	/**
     * 随机推荐
     */
    List<ArticleModel> selectRecommenRecord();
    
    Integer updateClickRate(Long id);
    
    Integer updateComment(Map<String,Object> map);//评论
    
    List<ArticleModel> listRelationUser(ArticleModel article);
    
    List<ArticleModel> selectByCategoryType(Long categoryId);
	  
	Integer  selectByCategoryListTotal(Long categoryType);
    
    /**
     *  前端页面按分类显�?
     * @param map
     * @return
     */
	  List<ArticleVo> selectByType(ArticleVo articleVo);
	  
	  /**
	   *  前端页面按分类显示�?�?
	   * @param map
	   * @return
	   */
	 Integer  selectByTypeTotal(Long articleTypeId);
    
	 /**
	  * 删除到回收站
	  * @param id
	  * @return
	  */
	 Integer putToRecycle(Long id);
	 
	 /**
	  *  设置为草稿
	  * @param id
	  * @return
	  */
	 Integer setToDraft(Long id);
	 
	 /**
	  * 从回收站恢复
	  * @param userId
	  * @return
	  */
	 Integer recoverFromRecycle(Long id);
	 
	 /**
	  *  显示回草稿箱、回收站中中的文章
	  */
	 List<ArticleModel> selectByStatus(ArticleModel article);
	 /**
	 *  显示回草稿箱、回收站中中的文章总数
	 */
	 Integer selectByStatusTotal(ArticleModel article);
	 
	 /**
	  * 你可能还感兴趣的文章
	  * @param id
	  * @return
	  */
	 List<ArticleModel> selectOtherInterested(List<String> list);
	 
	 /**
	  * 首页最新评论文章
	  * @return
	  */
	 List<ArticleVo> selectNewArticleComment();
	 
	 /**
	  * 根据ID查询
	  */
	  List<ArticleVo> selectByArticleId(Long articleId);

	  Integer selectTotal(ArticleVo t);
	  
	  List<ArticleVo> selectPagination(ArticleVo t);
	  
	  
	  /**
	   * 首页文章栏目
	   */
	  List<ArticleVo> selectByCategoryList(ArticleVo articleVo);
	  
	  /**
	   * 最新文章
	   */
	  List<ArticleModel> selectNewArticle();
	  /**
	   * 最热评论
	   */
	  List<ArticleModel> selectHotCommentArticle();
	  

	  ArticleModel selectPreArticle(ArticleModel record);
		
	  ArticleModel selectNextArticle(ArticleModel record);
	  
	  void batchUpdateStatus(List<ArticleModel> list);
	  
	  /**
	   * 查询搜索结果
	   */
	  List<SearchText> querySearchList(SearchText searchText);
	  
	 Integer querySearchListTotal(SearchText searchText);
}